#include "PX_Object_Explorer.h"
//////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////
//explorer

PX_Object_Explorer * PX_Object_GetExplorer(PX_Object *pObject)
{
	return (PX_Object_Explorer *)PX_ObjectGetDescByType(pObject,PX_OBJECT_TYPE_EXPLORER);
}

PX_OBJECT_EVENT_FUNCTION(PX_Object_ExplorerOnCursorMove)
{
	px_float x,y;
	px_float objx,objy,objWidth,objHeight;
	px_rect rect;

	PX_Object_Explorer *pExp=PX_Object_GetExplorer(pObject);
	rect=PX_ObjectGetRect(pObject);
	objx=rect.x;
	objy=rect.y;
	objWidth=rect.width;
	objHeight=rect.height;
	

	x=PX_Object_Event_GetCursorX(e);
	y=PX_Object_Event_GetCursorY(e);
	if (PX_isPointXYInRect(x,y,objx,objy+PX_OBJECT_EXPOLRER_MENU_HEIGHT,objWidth-PX_OBJECT_EXPOLRER_SLIDERBAR_WIDTH,objHeight-PX_OBJECT_EXPOLRER_MENU_HEIGHT*2))
	{
		//get cursor index
		px_int i;
		px_int ofty;
		px_int index;
		ofty=PX_Object_SliderBarGetValue(pExp->SliderBar);
		index=(px_int)(y+ofty-objy-PX_OBJECT_EXPOLRER_MENU_HEIGHT)/PX_OBJECT_EXPOLRER_ITEM_HEIGHT;
		//clear
		for (i=0;i<pExp->ItemCount;i++)
		{
			pExp->Items[i].bcursor=PX_FALSE;
		}
		if (index<pExp->ItemCount)
		{
			pExp->Items[index].bcursor=PX_TRUE;
		}

	}
}

PX_OBJECT_EVENT_FUNCTION(PX_Object_ExplorerOnButtonBack)
{
	px_char path[260];
	px_int index;
	PX_Object_Explorer *pExp=PX_Object_GetExplorer((PX_Object *)ptr);
	PX_strcpy(path,PX_Object_EditGetText(pExp->edit_Path),sizeof(path));
	index=PX_strlen(path);
	while (index)
	{
		if (path[index]=='/'||path[index]=='\\')
		{
			break;
		}
		index--;
	}
	path[index]='\0';
	PX_Object_EditSetText(pExp->edit_Path,path);
	PX_Object_ExplorerRefresh((PX_Object *)ptr);
}
PX_OBJECT_EVENT_FUNCTION(PX_Object_ExplorerOnButtonGo)
{
	PX_Object_ExplorerRefresh((PX_Object *)ptr);
}
PX_OBJECT_EVENT_FUNCTION(PX_Object_ExplorerOnButtonOk)
{
	PX_Object_Explorer *pExp=PX_Object_GetExplorer((PX_Object *)ptr);
	PX_ObjectExecuteEvent((PX_Object*)ptr, e);

	PX_ObjectClearFocus((PX_Object *)ptr);
	pExp->returnType=PX_OBJECT_EXPLORER_RETURN_CONFIRM;
	((PX_Object*)ptr)->Visible = PX_FALSE;
}
PX_OBJECT_EVENT_FUNCTION(PX_Object_ExplorerOnButtonCancel)
{
	PX_Object_Explorer *pExp=PX_Object_GetExplorer((PX_Object *)ptr);
	PX_ObjectExecuteEvent((PX_Object*)ptr, PX_OBJECT_BUILD_EVENT(PX_OBJECT_EVENT_CANCEL));
	PX_ObjectClearFocus((PX_Object *)ptr);
	pExp->returnType=PX_OBJECT_EXPLORER_RETURN_CANCEL;
	((PX_Object *)ptr)->Visible=PX_FALSE;
}

PX_OBJECT_EVENT_FUNCTION(PX_Object_ExplorerOnCursorDown)
{
	px_float x,y;
	px_float objx,objy,objWidth,objHeight;
	px_rect rect;
	PX_Object_Explorer *pExp=PX_Object_GetExplorer(pObject);
	rect = PX_ObjectGetRect(pObject);
	objx = rect.x;
	objy = rect.y;
	objWidth = rect.width;
	objHeight = rect.height;


	x=PX_Object_Event_GetCursorX(e);
	y=PX_Object_Event_GetCursorY(e);
	if (PX_isPointXYInRect(x,y,objx,objy+PX_OBJECT_EXPOLRER_MENU_HEIGHT,objWidth-PX_OBJECT_EXPOLRER_SLIDERBAR_WIDTH,objHeight-PX_OBJECT_EXPOLRER_MENU_HEIGHT*2))
	{
		px_int i=0,selectcount=0;
		px_int ofty;
		//get cursor index

		px_int index;
		ofty=PX_Object_SliderBarGetValue(pExp->SliderBar);
		index=(px_int)(y+ofty-objy-PX_OBJECT_EXPOLRER_MENU_HEIGHT)/PX_OBJECT_EXPOLRER_ITEM_HEIGHT;
		if (index<pExp->ItemCount)
		{
			if (pExp->Items[index].bselect&&pExp->Items[index].bFolder)
			{

				//enter path
				px_char *pEditPath=PX_Object_EditGetText(pExp->edit_Path);
				if (pEditPath[PX_strlen(pEditPath)-1]!='/'&&pEditPath[PX_strlen(pEditPath)-1]!='\\'&&pEditPath[0])
				{
					PX_Object_EditAppendText(pExp->edit_Path,"/");
				}
				PX_Object_EditAppendText(pExp->edit_Path,pExp->Items[index].name);

				PX_Object_ExplorerRefresh(pObject);
			}
			else
			{
				if (!pExp->savemode&&pExp->MaxSelectedCount!=1)
				{
					for (i=0;i<pExp->ItemCount;i++)
					{
						if(pExp->Items[i].bselect)
						{
							selectcount++;
						}
					}
					if (pExp->Items[index].bselect)
					{
						pExp->Items[index].bselect=PX_FALSE;
					}
					else
					{
						if (selectcount<pExp->MaxSelectedCount)
						{
							pExp->Items[index].bselect=PX_TRUE;
						}
					}

				}
				else
				{
					if (pExp->Items[index].bselect)
					{
						PX_ObjectClearFocus(pObject);
						pExp->returnType=PX_OBJECT_EXPLORER_RETURN_CONFIRM;
						PX_ObjectExecuteEvent(pObject,PX_OBJECT_BUILD_EVENT(PX_OBJECT_EVENT_EXECUTE));
						pObject->Visible=PX_FALSE;
					}
					else
					{
						if (pExp->savemode)
						{
							PX_Object_EditSetText(pExp->edit_FileName, "");
						}
						for (i=0;i<pExp->ItemCount;i++)
						{
							if(pExp->Items[i].bselect)
							{
								pExp->Items[i].bselect=PX_FALSE;
							}
						}
						pExp->Items[index].bselect=PX_TRUE;
						if (pExp->savemode)
						{
							PX_Object_EditSetText(pExp->edit_FileName, pExp->Items[index].name);
						}
					}

				}

			}

		}

		if (PX_Object_ExplorerGetSelectedCount(pObject)==0)
		{
			if (pExp->savemode&&PX_Object_EditGetText(pExp->edit_FileName)[0]==0)
			{
				pExp->btn_Ok->Visible = PX_FALSE;
			}
		}
		else
		{
			pExp->btn_Ok->Visible=PX_TRUE;
		}
	}
}

static PX_OBJECT_EVENT_FUNCTION(PX_Object_ExplorerOnCursorWheel)
{
	PX_Object_Explorer *pExp=PX_Object_GetExplorer(pObject);
	px_float x=PX_Object_Event_GetCursorX(e);
	px_float y=PX_Object_Event_GetCursorY(e);
	px_float z=PX_Object_Event_GetCursorZ(e);
	px_float objx,objy,objWidth,objHeight;
	px_rect rect;

	rect = PX_ObjectGetRect(pObject);
	objx = rect.x;
	objy = rect.y;
	objWidth = rect.width;
	objHeight = rect.height;


	if (PX_isPointXYInRect(x,y,objx,objy+PX_OBJECT_EXPOLRER_MENU_HEIGHT,objWidth-PX_OBJECT_EXPOLRER_SLIDERBAR_WIDTH,objHeight-PX_OBJECT_EXPOLRER_MENU_HEIGHT*2))
	{
		if (z<0)
		{
			PX_Object_SliderBarSetValue(pExp->SliderBar,PX_Object_SliderBarGetValue(pExp->SliderBar)+PX_OBJECT_EXPOLRER_ITEM_HEIGHT/2);
		}
		else
		{
			PX_Object_SliderBarSetValue(pExp->SliderBar,PX_Object_SliderBarGetValue(pExp->SliderBar)-PX_OBJECT_EXPOLRER_ITEM_HEIGHT/2);
		}
	}

}

static PX_OBJECT_EVENT_FUNCTION(PX_Object_ExplorerOnEditChanged)
{
	PX_Object_Explorer* pExp = PX_Object_GetExplorer(((PX_Object *)ptr));
	if (pExp->savemode)
	{
		if (PX_Object_EditGetText(pObject)[0]!=0)
		{
			pExp->btn_Ok->Visible = PX_TRUE;
		}
		else
		{
			pExp->btn_Ok->Visible = PX_FALSE;
		}
	}
}
PX_OBJECT_RENDER_FUNCTION(PX_Object_ExplorerRender)
{
	PX_Object_Explorer *pExp=PX_Object_GetExplorer(pObject);
	//background
	px_float objx,objy,objWidth,objHeight;
	px_rect rect;
	px_int val,ofty;

	if (pObject->Width<256)
	{
		pObject->Width=256;
	}
	if (pObject->Height<128)
	{
		pObject->Height=128;
	}


	rect = PX_ObjectGetRect(pObject);
	objx = rect.x;
	objy = rect.y;
	objWidth = rect.width;
	objHeight = rect.height;


	val=PX_Object_SliderBarGetValue(pExp->SliderBar);
	ofty=PX_Object_SliderBarGetValue(pExp->SliderBar);

	PX_GeoDrawRect(psurface,(px_int)objx,(px_int)objy,(px_int)(objx+objWidth),(px_int)(objy+objHeight),pExp->backgroundcolor);

	//button back
	pExp->btn_Back->x=8;
	pExp->btn_Back->y=8;
	pExp->btn_Back->Width=PX_OBJECT_EXPOLRER_BUTTON_WIDTH;
	pExp->btn_Back->Height=32;
	PX_Object_PushButtonSetBackgroundColor(pExp->btn_Back,pExp->backgroundcolor);
	PX_Object_PushButtonSetBorderColor(pExp->btn_Back,pExp->bordercolor);
	PX_Object_PushButtonSetTextColor(pExp->btn_Back,pExp->fontcolor);
	PX_Object_PushButtonSetCursorColor(pExp->btn_Back,pExp->cursorcolor);
	PX_Object_PushButtonSetPushColor(pExp->btn_Back,pExp->pushcolor);

	pExp->edit_Path->x=PX_OBJECT_EXPOLRER_BUTTON_WIDTH+8+8;
	pExp->edit_Path->Width=objWidth-PX_OBJECT_EXPOLRER_BUTTON_WIDTH-PX_OBJECT_EXPOLRER_BUTTON_WIDTH-8*4;
	if (pExp->fontmodule)
	{
		pExp->edit_Path->Height=pExp->fontmodule->max_Height+6.0f;
	}
	else
	{
		pExp->edit_Path->Height=20;
	}
	pExp->edit_Path->y=24-pExp->edit_Path->Height/2;
	PX_Object_EditSetBackgroundColor(pExp->edit_Path,pExp->backgroundcolor);
	PX_Object_EditSetBorderColor(pExp->edit_Path,pExp->bordercolor);
	PX_Object_EditSetTextColor(pExp->edit_Path,pExp->fontcolor);
	PX_Object_EditSetCursorColor(pExp->edit_Path,pExp->fontcolor);

	pExp->btn_go->x=objWidth-8-PX_OBJECT_EXPOLRER_BUTTON_WIDTH;
	pExp->btn_go->y=8;
	pExp->btn_go->Width=PX_OBJECT_EXPOLRER_BUTTON_WIDTH;
	pExp->btn_go->Height=32;
	PX_Object_PushButtonSetBackgroundColor(pExp->btn_go,pExp->backgroundcolor);
	PX_Object_PushButtonSetBorderColor(pExp->btn_go,pExp->bordercolor);
	PX_Object_PushButtonSetTextColor(pExp->btn_go,pExp->fontcolor);
	PX_Object_PushButtonSetCursorColor(pExp->btn_go,pExp->cursorcolor);
	PX_Object_PushButtonSetPushColor(pExp->btn_go,pExp->pushcolor);


	pExp->SliderBar->x=objx+objWidth-24;
	pExp->SliderBar->Width=24;
	pExp->SliderBar->y=PX_OBJECT_EXPOLRER_MENU_HEIGHT;
	pExp->SliderBar->Height=objHeight-PX_OBJECT_EXPOLRER_MENU_HEIGHT-PX_OBJECT_EXPOLRER_MENU_HEIGHT;
	PX_Object_SliderBarSetBackgroundColor(pExp->SliderBar,pExp->backgroundcolor);
	PX_Object_SliderBarSetColor(pExp->SliderBar,pExp->bordercolor);
	if (pExp->ItemCount*PX_OBJECT_EXPOLRER_ITEM_HEIGHT>objHeight-PX_OBJECT_EXPOLRER_MENU_HEIGHT-PX_OBJECT_EXPOLRER_MENU_HEIGHT)
	{
		pExp->SliderBar->Visible=PX_TRUE;
		PX_Object_SliderBarSetRange(pExp->SliderBar,0,pExp->ItemCount*PX_OBJECT_EXPOLRER_ITEM_HEIGHT-((px_int)objHeight-PX_OBJECT_EXPOLRER_MENU_HEIGHT-PX_OBJECT_EXPOLRER_MENU_HEIGHT));
		PX_Object_SliderBarSetSliderButtonLength(pExp->SliderBar,(px_int)(pExp->SliderBar->Height*pExp->SliderBar->Height/pExp->ItemCount/PX_OBJECT_EXPOLRER_ITEM_HEIGHT));
	}
	else
	{
		PX_Object_SliderBarSetRange(pExp->SliderBar,0,0);
		pExp->SliderBar->Visible=PX_FALSE;
	}


	do 
	{
		PX_SurfaceLimitInfo lmInfo;
		px_int startIndex=ofty/PX_OBJECT_EXPOLRER_ITEM_HEIGHT;
		px_int drawy=PX_OBJECT_EXPOLRER_MENU_HEIGHT-(ofty)%PX_OBJECT_EXPOLRER_ITEM_HEIGHT;
		lmInfo=PX_SurfaceGetLimit(psurface);
		PX_SurfaceSetLimit(psurface,(px_int)objx,(px_int)objy+PX_OBJECT_EXPOLRER_MENU_HEIGHT,(px_int)(objx+objWidth),(px_int)(objy+objHeight-PX_OBJECT_EXPOLRER_MENU_HEIGHT));
		while (startIndex<pExp->ItemCount&&drawy<objHeight-PX_OBJECT_EXPOLRER_MENU_HEIGHT)
		{
			PX_Object_Explorer_Item *pItem=&pExp->Items[startIndex];

			if (pItem->bcursor)
			{
				PX_GeoDrawRect(psurface,(px_int)objx,(px_int)objy+drawy,(px_int)(objx+objWidth),(px_int)objy+drawy+PX_OBJECT_EXPOLRER_ITEM_HEIGHT-1,pExp->cursorcolor);
			}

			if (pItem->bFolder)
			{
				PX_ShapeRender(psurface,&pExp->folder,(px_int)objx+16+3,(px_int)objy+drawy+PX_OBJECT_EXPOLRER_ITEM_HEIGHT/2,PX_ALIGN_CENTER,pExp->fontcolor);
			}
			else
			{
				PX_ShapeRender(psurface,&pExp->file,(px_int)objx+16+3,(px_int)objy+drawy+PX_OBJECT_EXPOLRER_ITEM_HEIGHT/2,PX_ALIGN_CENTER,pExp->fontcolor);
			}

			PX_FontModuleDrawText(psurface,pExp->fontmodule,(px_int)objx+32+8,(px_int)objy+drawy+PX_OBJECT_EXPOLRER_ITEM_HEIGHT/2,PX_ALIGN_LEFTMID,pItem->name,pExp->fontcolor);

			if (pItem->bselect)
			{
				PX_GeoDrawSolidCircle(psurface,(px_int)(objx+objWidth)-24-16,(px_int)objy+drawy+PX_OBJECT_EXPOLRER_ITEM_HEIGHT/2,8,pExp->fontcolor);
			}

			drawy+=PX_OBJECT_EXPOLRER_ITEM_HEIGHT;
			startIndex++;
		}

		PX_SurfaceSetLimitInfo(psurface,lmInfo);

	} while (0);


	PX_GeoDrawLine(psurface,(px_int)objx, (px_int)(objy + PX_OBJECT_EXPOLRER_MENU_HEIGHT),(px_int)(objx+objWidth), (px_int)(objy + PX_OBJECT_EXPOLRER_MENU_HEIGHT),1,pExp->fontcolor);
	PX_GeoDrawLine(psurface,(px_int)objx,(px_int)(objy+objHeight-PX_OBJECT_EXPOLRER_MENU_HEIGHT),(px_int)(objx+objWidth),(px_int)(objy+objHeight-PX_OBJECT_EXPOLRER_MENU_HEIGHT),1,pExp->fontcolor);

	pExp->btn_Ok->x=objWidth-8-PX_OBJECT_EXPOLRER_BUTTON_WIDTH-8-PX_OBJECT_EXPOLRER_BUTTON_WIDTH;
	pExp->btn_Ok->y=objHeight-40;
	pExp->btn_Ok->Width=PX_OBJECT_EXPOLRER_BUTTON_WIDTH;
	pExp->btn_Ok->Height=32;
	PX_Object_PushButtonSetBackgroundColor(pExp->btn_Ok,pExp->backgroundcolor);
	PX_Object_PushButtonSetBorderColor(pExp->btn_Ok,pExp->bordercolor);
	PX_Object_PushButtonSetTextColor(pExp->btn_Ok,pExp->fontcolor);
	PX_Object_PushButtonSetCursorColor(pExp->btn_Ok,pExp->cursorcolor);
	PX_Object_PushButtonSetPushColor(pExp->btn_Ok,pExp->pushcolor);

	pExp->btn_Cancel->x = pExp->btn_Ok->x + pExp->btn_Ok->Width + 5;
	pExp->btn_Cancel->y= pExp->btn_Ok->y;
	pExp->btn_Cancel->Width=PX_OBJECT_EXPOLRER_BUTTON_WIDTH;
	pExp->btn_Cancel->Height=32;
	PX_Object_PushButtonSetBackgroundColor(pExp->btn_Cancel,pExp->backgroundcolor);
	PX_Object_PushButtonSetBorderColor(pExp->btn_Cancel,pExp->bordercolor);
	PX_Object_PushButtonSetTextColor(pExp->btn_Cancel,pExp->fontcolor);
	PX_Object_PushButtonSetCursorColor(pExp->btn_Cancel,pExp->cursorcolor);
	PX_Object_PushButtonSetPushColor(pExp->btn_Cancel,pExp->pushcolor);

	pExp->edit_FileName->x = 16;
	pExp->edit_FileName->y = objHeight - 40;
	pExp->edit_FileName->Width = 256;
	pExp->edit_FileName->Height = 32;
	if (pExp->MaxSelectedCount!=1||!pExp->savemode)
	{
		pExp->edit_FileName->Visible = PX_FALSE;
	}
	else
	{
		pExp->edit_FileName->Visible = PX_TRUE;
	}

}

PX_OBJECT_FREE_FUNCTION(PX_Object_ExplorerFree)
{
	PX_Object_Explorer *pExp=PX_Object_GetExplorer(pObject);
	PX_ShapeFree(&pExp->file);
	PX_ShapeFree(&pExp->folder);
}

PX_Object* PX_Object_ExplorerAttachObject( PX_Object* pObject,px_int attachIndex, px_int x, px_int y, px_int Width, px_int Height, PX_FontModule* fm, PX_ExplorerGetPathFolderCount _func_gpfdc, PX_ExplorerGetPathFileCount _func_gpfec, PX_ExplorerGetPathFolderName _func_gpfdn, PX_ExplorerGetPathFileName _func_gpfcn, const px_char path[])
{
	px_memorypool* mp= pObject->mp;
	PX_Object_Explorer explorer, *pExp;
	px_byte PX_Object_Explorer_fileLogoData[] = {
	0x54,0x52,0x41,0x57,0x1a,0x0,0x0,0x0,0x20,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x28,0x0,0x0,0x0,0x67,0x0,0x0,0x0,0x74,0x0,0x0,0x0,0x74,0x0,0x0,0x0,0x74,0x0,0x0,0x0,0x74,0x0,0x0,0x0,0x74,0x0,0x0,0x0,0x74,0x0,0x0,0x0,0x74,0x0,0x0,0x0,0x74,0x0,0x0,0x0,0x74,0x0,0x0,0x0,0x74,0x0,0x0,0x0,0x74,0x0,0x0,0x0,0x74,0x0,0x0,0x0,0x75,0x0,0x0,0x0,0x55,0x0,0x0,0x0,0x5,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x38,0x0,0x0,0x0,0xd7,0x0,0x0,0x0,0xff,0x0,0x0,0x0,0xff,0x0,0x0,0x0,0xff,0x0,0x0,0x0,0xff,0x0,0x0,0x0,0xff,0x0,0x0,0x0,0xff,0x0,0x0,0x0,0xff,0x0,0x0,0x0,0xff,0x0,0x0,0x0,0xff,0x0,0x0,0x0,0xff,0x0,0x0,0x0,0xff,0x0,0x0,0x0,0xff,0x0,0x0,0x0,0xff,0x0,0x0,0x0,0xff,0x0,0x0,0x0,0xf5,0x0,0x0,0x0,0x75,0x0,0x0,0x0,0x4,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x2,0x0,0x0,0x0,0x9c,0x0,0x0,0x0,0xff,0x0,0x0,0x0,0xfe,0x0,0x0,0x0,0xf8,0x0,0x0,0x0,0xf8,0x0,0x0,0x0,0xf8,0x0,0x0,0x0,0xf8,0x0,0x0,0x0,0xf8,0x0,0x0,0x0,0xf8,0x0,0x0,0x0,0xf8,0x0,0x0,0x0,0xf8,0x0,0x0,0x0,0xf8,0x0,0x0,0x0,0xf8,0x0,0x0,0x0,0xfd,0x0,0x0,0x0,0xff,0x0,0x0,0x0,0xff,0x0,0x0,0x0,0xff,0x0,0x0,0x0,0xf6,0x0,0x0,0x0,0x75,0x0,0x0,0x0,0x4,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x8,0x0,0x0,0x0,0xb9,0x0,0x0,0x0,0xff,0x0,0x0,0x0,0xde,0x0,0x0,0x0,0x54,0x0,0x0,0x0,0x44,0x0,0x0,0x0,0x45,0x0,0x0,0x0,0x45,0x0,0x0,0x0,0x45,0x0,0x0,0x0,0x45,0x0,0x0,0x0,0x45,0x0,0x0,0x0,0x45,0x0,0x0,0x0,0x44,0x0,0x0,0x0,0x4a,0x0,0x0,0x0,0xcb,0x0,0x0,0x0,0xff,0x0,0x0,0x0,0xf8,0x0,0x0,0x0,0xf7,0x0,0x0,0x0,0xff,0x0,0x0,0x0,0xf6,0x0,0x0,0x0,0x75,0x0,0x0,0x0,0x4,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x9,0x0,0x0,0x0,0xb9,0x0,0x0,0x0,0xff,0x0,0x0,0x0,0xd1,0x0,0x0,0x0,0x11,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x3,0x0,0x0,0x0,0xb6,0x0,0x0,0x0,0xff,0x0,0x0,0x0,0xd8,0x0,0x0,0x0,0x6d,0x0,0x0,0x0,0xdf,0x0,0x0,0x0,0xff,0x0,0x0,0x0,0xf6,0x0,0x0,0x0,0x7c,0x0,0x0,0x0,0x4,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x9,0x0,0x0,0x0,0xb9,0x0,0x0,0x0,0xff,0x0,0x0,0x0,0xd2,0x0,0x0,0x0,0x14,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x7,0x0,0x0,0x0,0xb7,0x0,0x0,0x0,0xff,0x0,0x0,0x0,0xd4,0x0,0x0,0x0,0x13,0x0,0x0,0x0,0x45,0x0,0x0,0x0,0xdf,0x0,0x0,0x0,0xff,0x0,0x0,0x0,0xf6,0x0,0x0,0x0,0x76,0x0,0x0,0x0,0x4,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x9,0x0,0x0,0x0,0xb9,0x0,0x0,0x0,0xff,0x0,0x0,0x0,0xd2,0x0,0x0,0x0,0x14,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x7,0x0,0x0,0x0,0xb7,0x0,0x0,0x0,0xff,0x0,0x0,0x0,0xd4,0x0,0x0,0x0,0x16,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x46,0x0,0x0,0x0,0xdf,0x0,0x0,0x0,0xff,0x0,0x0,0x0,0xf6,0x0,0x0,0x0,0x76,0x0,0x0,0x0,0x4,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x9,0x0,0x0,0x0,0xb9,0x0,0x0,0x0,0xff,0x0,0x0,0x0,0xd2,0x0,0x0,0x0,0x14,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x7,0x0,0x0,0x0,0xb7,0x0,0x0,0x0,0xff,0x0,0x0,0x0,0xd4,0x0,0x0,0x0,0x15,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x46,0x0,0x0,0x0,0xde,0x0,0x0,0x0,0xff,0x0,0x0,0x0,0xf6,0x0,0x0,0x0,0x6e,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x9,0x0,0x0,0x0,0xb9,0x0,0x0,0x0,0xff,0x0,0x0,0x0,0xd2,0x0,0x0,0x0,0x14,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x5,0x0,0x0,0x0,0xb2,0x0,0x0,0x0,0xff,0x0,0x0,0x0,0xee,0x0,0x0,0x0,0xa2,0x0,0x0,0x0,0x98,0x0,0x0,0x0,0x99,0x0,0x0,0x0,0x98,0x0,0x0,0x0,0xd2,0x0,0x0,0x0,0xff,0x0,0x0,0x0,0xff,0x0,0x0,0x0,0xba,0x0,0x0,0x0,0x8,0x0,0x0,0x0,0x9,0x0,0x0,0x0,0xb9,0x0,0x0,0x0,0xff,0x0,0x0,0x0,0xd2,0x0,0x0,0x0,0x14,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0x0,0x0,0x0,0xff,0x0,0x0,0x0,0xff,0x0,0x0,0x0,0xff,0x0,0x0,0x0,0xff,0x0,0x0,0x0,0xff,0x0,0x0,0x0,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x7a,0x0,0x0,0x0,0xff,0x0,0x0,0x0,0xff,0x0,0x0,0x0,0xff,0x0,0x0,0x0,0xff,0x0,0x0,0x0,0xff,0x0,0x0,0x0,0xff,0x0,0x0,0x0,0xff,0x0,0x0,0x0,0xff,0x0,0x0,0x0,0xff,0x0,0x0,0x0,0xb9,0x0,0x0,0x0,0x9,0x0,0x0,0x0,0x9,0x0,0x0,0x0,0xb9,0x0,0x0,0x0,0xff,0x0,0x0,0x0,0xd2,0x0,0x0,0x0,0x14,0x0,0x0,0x0,0x0,0x60,0x60,0x60,0xff,0x60,0x60,0x60,0xff,0x60,0x60,0x60,0xff,0x60,0x60,0x60,0xff,0x60,0x60,0x60,0xff,0x61,0x61,0x61,0xff,0x60,0x60,0x60,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x14,0x0,0x0,0x0,0x95,0x0,0x0,0x0,0xe1,0x0,0x0,0x0,0xea,0x0,0x0,0x0,0xe9,0x0,0x0,0x0,0xe9,0x0,0x0,0x0,0xe9,0x0,0x0,0x0,0xeb,0x0,0x0,0x0,0xfb,0x0,0x0,0x0,0xff,0x0,0x0,0x0,0xb9,0x0,0x0,0x0,0x9,0x0,0x0,0x0,0x9,0x0,0x0,0x0,0xb9,0x0,0x0,0x0,0xff,0x0,0x0,0x0,0xd2,0x0,0x0,0x0,0x14,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x5,0x0,0x0,0x0,0x21,0x0,0x0,0x0,0x2b,0x0,0x0,0x0,0x2b,0x0,0x0,0x0,0x2b,0x0,0x0,0x0,0x2a,0x0,0x0,0x0,0x3c,0x0,0x0,0x0,0xd9,0x0,0x0,0x0,0xff,0x0,0x0,0x0,0xb9,0x0,0x0,0x0,0x9,0x0,0x0,0x0,0x9,0x0,0x0,0x0,0xb9,0x0,0x0,0x0,0xff,0x0,0x0,0x0,0xd2,0x0,0x0,0x0,0x14,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x12,0x0,0x0,0x0,0xd1,0x0,0x0,0x0,0xff,0x0,0x0,0x0,0xb9,0x0,0x0,0x0,0x9,0x0,0x0,0x0,0x9,0x0,0x0,0x0,0xb9,0x0,0x0,0x0,0xff,0x0,0x0,0x0,0xd2,0x0,0x0,0x0,0x14,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0x0,0x0,0x0,0xff,0x0,0x0,0x0,0xff,0x0,0x0,0x0,0xff,0x0,0x0,0x0,0xff,0x0,0x0,0x0,0xff,0x0,0x0,0x0,0xff,0x0,0x0,0x0,0xff,0x0,0x0,0x0,0xff,0x0,0x0,0x0,0xff,0x0,0x0,0x0,0xff,0x0,0x0,0x0,0xff,0x0,0x0,0x0,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x14,0x0,0x0,0x0,0xd2,0x0,0x0,0x0,0xff,0x0,0x0,0x0,0xb9,0x0,0x0,0x0,0x9,0x0,0x0,0x0,0x9,0x0,0x0,0x0,0xb9,0x0,0x0,0x0,0xff,0x0,0x0,0x0,0xd2,0x0,0x0,0x0,0x14,0x0,0x0,0x0,0x0,0x61,0x61,0x61,0xff,0x60,0x60,0x60,0xff,0x60,0x60,0x60,0xff,0x60,0x60,0x60,0xff,0x60,0x60,0x60,0xff,0x61,0x61,0x61,0xff,0x60,0x60,0x60,0xff,0x60,0x60,0x60,0xff,0x60,0x60,0x60,0xff,0x60,0x60,0x60,0xff,0x60,0x60,0x60,0xff,0x61,0x61,0x61,0xff,0x60,0x60,0x60,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x14,0x0,0x0,0x0,0xd2,0x0,0x0,0x0,0xff,0x0,0x0,0x0,0xb9,0x0,0x0,0x0,0x9,0x0,0x0,0x0,0x9,0x0,0x0,0x0,0xb9,0x0,0x0,0x0,0xff,0x0,0x0,0x0,0xd2,0x0,0x0,0x0,0x14,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x14,0x0,0x0,0x0,0xd2,0x0,0x0,0x0,0xff,0x0,0x0,0x0,0xb9,0x0,0x0,0x0,0x9,0x0,0x0,0x0,0x9,0x0,0x0,0x0,0xb9,0x0,0x0,0x0,0xff,0x0,0x0,0x0,0xd2,0x0,0x0,0x0,0x14,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x14,0x0,0x0,0x0,0xd2,0x0,0x0,0x0,0xff,0x0,0x0,0x0,0xb9,0x0,0x0,0x0,0x9,0x0,0x0,0x0,0x9,0x0,0x0,0x0,0xb9,0x0,0x0,0x0,0xff,0x0,0x0,0x0,0xd2,0x0,0x0,0x0,0x14,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0x0,0x0,0x0,0xff,0x0,0x0,0x0,0xff,0x0,0x0,0x0,0xff,0x0,0x0,0x0,0xff,0x0,0x0,0x0,0xff,0x0,0x0,0x0,0xff,0x0,0x0,0x0,0xff,0x0,0x0,0x0,0xff,0x0,0x0,0x0,0xff,0x0,0x0,0x0,0xff,0x0,0x0,0x0,0xff,0x0,0x0,0x0,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x14,0x0,0x0,0x0,0xd2,0x0,0x0,0x0,0xff,0x0,0x0,0x0,0xb9,0x0,0x0,0x0,0x9,0x0,0x0,0x0,0x9,0x0,0x0,0x0,0xb9,0x0,0x0,0x0,0xff,0x0,0x0,0x0,0xd2,0x0,0x0,0x0,0x14,0x0,0x0,0x0,0x0,0x60,0x60,0x60,0xff,0x60,0x60,0x60,0xff,0x60,0x60,0x60,0xff,0x60,0x60,0x60,0xff,0x60,0x60,0x60,0xff,0x60,0x60,0x60,0xff,0x60,0x60,0x60,0xff,0x60,0x60,0x60,0xff,0x60,0x60,0x60,0xff,0x60,0x60,0x60,0xff,0x60,0x60,0x60,0xff,0x61,0x61,0x61,0xff,0x60,0x60,0x60,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x14,0x0,0x0,0x0,0xd2,0x0,0x0,0x0,0xff,0x0,0x0,0x0,0xb9,0x0,0x0,0x0,0x9,0x0,0x0,0x0,0x9,0x0,0x0,0x0,0xb9,0x0,0x0,0x0,0xff,0x0,0x0,0x0,0xd2,0x0,0x0,0x0,0x14,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x14,0x0,0x0,0x0,0xd2,0x0,0x0,0x0,0xff,0x0,0x0,0x0,0xb9,0x0,0x0,0x0,0x9,0x0,0x0,0x0,0x9,0x0,0x0,0x0,0xb9,0x0,0x0,0x0,0xff,0x0,0x0,0x0,0xd2,0x0,0x0,0x0,0x14,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x14,0x0,0x0,0x0,0xd2,0x0,0x0,0x0,0xff,0x0,0x0,0x0,0xb9,0x0,0x0,0x0,0x9,0x0,0x0,0x0,0x9,0x0,0x0,0x0,0xb9,0x0,0x0,0x0,0xff,0x0,0x0,0x0,0xd2,0x0,0x0,0x0,0x14,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0x0,0x0,0x0,0xff,0x0,0x0,0x0,0xff,0x0,0x0,0x0,0xff,0x0,0x0,0x0,0xff,0x0,0x0,0x0,0xff,0x0,0x0,0x0,0xff,0x0,0x0,0x0,0xff,0x0,0x0,0x0,0xff,0x0,0x0,0x0,0xff,0x0,0x0,0x0,0xff,0x0,0x0,0x0,0xff,0x0,0x0,0x0,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x14,0x0,0x0,0x0,0xd2,0x0,0x0,0x0,0xff,0x0,0x0,0x0,0xb9,0x0,0x0,0x0,0x9,0x0,0x0,0x0,0x9,0x0,0x0,0x0,0xb9,0x0,0x0,0x0,0xff,0x0,0x0,0x0,0xd2,0x0,0x0,0x0,0x14,0x0,0x0,0x0,0x0,0x60,0x60,0x60,0xff,0x61,0x61,0x61,0xff,0x61,0x61,0x61,0xff,0x60,0x60,0x60,0xff,0x60,0x60,0x60,0xff,0x60,0x60,0x60,0xff,0x60,0x60,0x60,0xff,0x61,0x61,0x61,0xff,0x60,0x60,0x60,0xff,0x60,0x60,0x60,0xff,0x60,0x60,0x60,0xff,0x60,0x60,0x60,0xff,0x60,0x60,0x60,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x14,0x0,0x0,0x0,0xd2,0x0,0x0,0x0,0xff,0x0,0x0,0x0,0xb9,0x0,0x0,0x0,0x9,0x0,0x0,0x0,0x9,0x0,0x0,0x0,0xb9,0x0,0x0,0x0,0xff,0x0,0x0,0x0,0xd2,0x0,0x0,0x0,0x14,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x14,0x0,0x0,0x0,0xd2,0x0,0x0,0x0,0xff,0x0,0x0,0x0,0xb9,0x0,0x0,0x0,0x9,0x0,0x0,0x0,0x9,0x0,0x0,0x0,0xb9,0x0,0x0,0x0,0xff,0x0,0x0,0x0,0xd2,0x0,0x0,0x0,0x14,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x14,0x0,0x0,0x0,0xd2,0x0,0x0,0x0,0xff,0x0,0x0,0x0,0xb9,0x0,0x0,0x0,0x9,0x0,0x0,0x0,0x9,0x0,0x0,0x0,0xb9,0x0,0x0,0x0,0xff,0x0,0x0,0x0,0xd1,0x0,0x0,0x0,0x11,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x11,0x0,0x0,0x0,0xd1,0x0,0x0,0x0,0xff,0x0,0x0,0x0,0xb9,0x0,0x0,0x0,0x9,0x0,0x0,0x0,0x8,0x0,0x0,0x0,0xb9,0x0,0x0,0x0,0xff,0x0,0x0,0x0,0xde,0x0,0x0,0x0,0x54,0x0,0x0,0x0,0x44,0x0,0x0,0x0,0x45,0x0,0x0,0x0,0x45,0x0,0x0,0x0,0x45,0x0,0x0,0x0,0x45,0x0,0x0,0x0,0x45,0x0,0x0,0x0,0x45,0x0,0x0,0x0,0x45,0x0,0x0,0x0,0x45,0x0,0x0,0x0,0x45,0x0,0x0,0x0,0x45,0x0,0x0,0x0,0x45,0x0,0x0,0x0,0x45,0x0,0x0,0x0,0x45,0x0,0x0,0x0,0x45,0x0,0x0,0x0,0x44,0x0,0x0,0x0,0x54,0x0,0x0,0x0,0xde,0x0,0x0,0x0,0xff,0x0,0x0,0x0,0xb9,0x0,0x0,0x0,0x8,0x0,0x0,0x0,0x2,0x0,0x0,0x0,0x9c,0x0,0x0,0x0,0xff,0x0,0x0,0x0,0xfe,0x0,0x0,0x0,0xf8,0x0,0x0,0x0,0xf8,0x0,0x0,0x0,0xf8,0x0,0x0,0x0,0xf8,0x0,0x0,0x0,0xf8,0x0,0x0,0x0,0xf8,0x0,0x0,0x0,0xf8,0x0,0x0,0x0,0xf8,0x0,0x0,0x0,0xf8,0x0,0x0,0x0,0xf8,0x0,0x0,0x0,0xf8,0x0,0x0,0x0,0xf8,0x0,0x0,0x0,0xf8,0x0,0x0,0x0,0xf8,0x0,0x0,0x0,0xf8,0x0,0x0,0x0,0xf8,0x0,0x0,0x0,0xf8,0x0,0x0,0x0,0xf8,0x0,0x0,0x0,0xfe,0x0,0x0,0x0,0xff,0x0,0x0,0x0,0x9c,0x0,0x0,0x0,0x2,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x38,0x0,0x0,0x0,0xd7,0x0,0x0,0x0,0xff,0x0,0x0,0x0,0xff,0x0,0x0,0x0,0xff,0x0,0x0,0x0,0xff,0x0,0x0,0x0,0xff,0x0,0x0,0x0,0xff,0x0,0x0,0x0,0xff,0x0,0x0,0x0,0xff,0x0,0x0,0x0,0xff,0x0,0x0,0x0,0xff,0x0,0x0,0x0,0xff,0x0,0x0,0x0,0xff,0x0,0x0,0x0,0xff,0x0,0x0,0x0,0xff,0x0,0x0,0x0,0xff,0x0,0x0,0x0,0xff,0x0,0x0,0x0,0xff,0x0,0x0,0x0,0xff,0x0,0x0,0x0,0xff,0x0,0x0,0x0,0xff,0x0,0x0,0x0,0xd7,0x0,0x0,0x0,0x38,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x28,0x0,0x0,0x0,0x67,0x0,0x0,0x0,0x74,0x0,0x0,0x0,0x74,0x0,0x0,0x0,0x74,0x0,0x0,0x0,0x74,0x0,0x0,0x0,0x74,0x0,0x0,0x0,0x74,0x0,0x0,0x0,0x74,0x0,0x0,0x0,0x74,0x0,0x0,0x0,0x74,0x0,0x0,0x0,0x74,0x0,0x0,0x0,0x74,0x0,0x0,0x0,0x74,0x0,0x0,0x0,0x74,0x0,0x0,0x0,0x74,0x0,0x0,0x0,0x74,0x0,0x0,0x0,0x74,0x0,0x0,0x0,0x74,0x0,0x0,0x0,0x74,0x0,0x0,0x0,0x67,0x0,0x0,0x0,0x28,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0
	};

	px_byte PX_Object_Explorer_folderLogoData[] = {
		0x54,0x52,0x41,0x57,0x27,0x0,0x0,0x0,0x20,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x32,0x0,0x0,0x0,0x7f,0x0,0x0,0x0,0x8f,0x0,0x0,0x0,0x8f,0x0,0x0,0x0,0x8f,0x0,0x0,0x0,0x8f,0x0,0x0,0x0,0x8f,0x0,0x0,0x0,0x8f,0x0,0x0,0x0,0x8f,0x0,0x0,0x0,0x8f,0x0,0x0,0x0,0x8f,0x0,0x0,0x0,0x8f,0x0,0x0,0x0,0x81,0x0,0x0,0x0,0x42,0x0,0x0,0x0,0x3,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x56,0x0,0x0,0x0,0xde,0x0,0x0,0x0,0xff,0x0,0x0,0x0,0xff,0x0,0x0,0x0,0xff,0x0,0x0,0x0,0xff,0x0,0x0,0x0,0xff,0x0,0x0,0x0,0xff,0x0,0x0,0x0,0xff,0x0,0x0,0x0,0xff,0x0,0x0,0x0,0xff,0x0,0x0,0x0,0xff,0x0,0x0,0x0,0xff,0x0,0x0,0x0,0xff,0x0,0x0,0x0,0xed,0x0,0x0,0x0,0x91,0x0,0x0,0x0,0x14,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xf,0x0,0x0,0x0,0xc5,0x0,0x0,0x0,0xff,0x0,0x0,0x0,0xff,0x0,0x0,0x0,0xff,0x0,0x0,0x0,0xff,0x0,0x0,0x0,0xff,0x0,0x0,0x0,0xff,0x0,0x0,0x0,0xff,0x0,0x0,0x0,0xff,0x0,0x0,0x0,0xff,0x0,0x0,0x0,0xff,0x0,0x0,0x0,0xff,0x0,0x0,0x0,0xff,0x0,0x0,0x0,0xff,0x0,0x0,0x0,0xff,0x0,0x0,0x0,0xff,0x0,0x0,0x0,0x92,0x0,0x0,0x0,0xc,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x2b,0x0,0x0,0x0,0xe7,0x0,0x0,0x0,0xff,0x0,0x0,0x0,0xf6,0x0,0x0,0x0,0xb8,0x0,0x0,0x0,0xac,0x0,0x0,0x0,0xac,0x0,0x0,0x0,0xac,0x0,0x0,0x0,0xac,0x0,0x0,0x0,0xac,0x0,0x0,0x0,0xac,0x0,0x0,0x0,0xac,0x0,0x0,0x0,0xac,0x0,0x0,0x0,0xae,0x0,0x0,0x0,0xd4,0x0,0x0,0x0,0xff,0x0,0x0,0x0,0xff,0x0,0x0,0x0,0xfb,0x0,0x0,0x0,0x89,0x0,0x0,0x0,0x50,0x0,0x0,0x0,0x53,0x0,0x0,0x0,0x53,0x0,0x0,0x0,0x53,0x0,0x0,0x0,0x53,0x0,0x0,0x0,0x53,0x0,0x0,0x0,0x53,0x0,0x0,0x0,0x53,0x0,0x0,0x0,0x53,0x0,0x0,0x0,0x53,0x0,0x0,0x0,0x52,0x0,0x0,0x0,0x3e,0x0,0x0,0x0,0x11,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x34,0x0,0x0,0x0,0xea,0x0,0x0,0x0,0xff,0x0,0x0,0x0,0xe4,0x0,0x0,0x0,0x26,0x0,0x0,0x0,0x2,0x0,0x0,0x0,0x4,0x0,0x0,0x0,0x4,0x0,0x0,0x0,0x4,0x0,0x0,0x0,0x4,0x0,0x0,0x0,0x4,0x0,0x0,0x0,0x4,0x0,0x0,0x0,0x4,0x0,0x0,0x0,0x3,0x0,0x0,0x0,0x28,0x0,0x0,0x0,0xc8,0x0,0x0,0x0,0xff,0x0,0x0,0x0,0xff,0x0,0x0,0x0,0xfe,0x0,0x0,0x0,0xfb,0x0,0x0,0x0,0xfb,0x0,0x0,0x0,0xfb,0x0,0x0,0x0,0xfb,0x0,0x0,0x0,0xfb,0x0,0x0,0x0,0xfb,0x0,0x0,0x0,0xfb,0x0,0x0,0x0,0xfb,0x0,0x0,0x0,0xfb,0x0,0x0,0x0,0xfb,0x0,0x0,0x0,0xfb,0x0,0x0,0x0,0xf5,0x0,0x0,0x0,0xb0,0x0,0x0,0x0,0x19,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x34,0x0,0x0,0x0,0xea,0x0,0x0,0x0,0xff,0x0,0x0,0x0,0xe3,0x0,0x0,0x0,0x22,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x33,0x0,0x0,0x0,0xdb,0x0,0x0,0x0,0xff,0x0,0x0,0x0,0xff,0x0,0x0,0x0,0xff,0x0,0x0,0x0,0xff,0x0,0x0,0x0,0xff,0x0,0x0,0x0,0xff,0x0,0x0,0x0,0xff,0x0,0x0,0x0,0xff,0x0,0x0,0x0,0xff,0x0,0x0,0x0,0xff,0x0,0x0,0x0,0xff,0x0,0x0,0x0,0xff,0x0,0x0,0x0,0xff,0x0,0x0,0x0,0xff,0x0,0x0,0x0,0xff,0x0,0x0,0x0,0x8e,0x0,0x0,0x0,0x4,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x34,0x0,0x0,0x0,0xea,0x0,0x0,0x0,0xff,0x0,0x0,0x0,0xe3,0x0,0x0,0x0,0x22,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x37,0x0,0x0,0x0,0xa4,0x0,0x0,0x0,0xd8,0x0,0x0,0x0,0xdc,0x0,0x0,0x0,0xdc,0x0,0x0,0x0,0xdc,0x0,0x0,0x0,0xdc,0x0,0x0,0x0,0xdc,0x0,0x0,0x0,0xdc,0x0,0x0,0x0,0xdc,0x0,0x0,0x0,0xdc,0x0,0x0,0x0,0xdc,0x0,0x0,0x0,0xdb,0x0,0x0,0x0,0xe8,0x0,0x0,0x0,0xff,0x0,0x0,0x0,0xff,0x0,0x0,0x0,0xd5,0x0,0x0,0x0,0x16,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x34,0x0,0x0,0x0,0xea,0x0,0x0,0x0,0xff,0x0,0x0,0x0,0xe3,0x0,0x0,0x0,0x22,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x5,0x0,0x0,0x0,0x17,0x0,0x0,0x0,0x19,0x0,0x0,0x0,0x19,0x0,0x0,0x0,0x19,0x0,0x0,0x0,0x19,0x0,0x0,0x0,0x19,0x0,0x0,0x0,0x19,0x0,0x0,0x0,0x19,0x0,0x0,0x0,0x19,0x0,0x0,0x0,0x19,0x0,0x0,0x0,0x15,0x0,0x0,0x0,0x66,0x0,0x0,0x0,0xfc,0x0,0x0,0x0,0xff,0x0,0x0,0x0,0xdc,0x0,0x0,0x0,0x18,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x34,0x0,0x0,0x0,0xea,0x0,0x0,0x0,0xff,0x0,0x0,0x0,0xe3,0x0,0x0,0x0,0x21,0x0,0x0,0x0,0x25,0x0,0x0,0x0,0x67,0x0,0x0,0x0,0x77,0x0,0x0,0x0,0x78,0x0,0x0,0x0,0x78,0x0,0x0,0x0,0x78,0x0,0x0,0x0,0x78,0x0,0x0,0x0,0x78,0x0,0x0,0x0,0x78,0x0,0x0,0x0,0x78,0x0,0x0,0x0,0x78,0x0,0x0,0x0,0x78,0x0,0x0,0x0,0x77,0x0,0x0,0x0,0x76,0x0,0x0,0x0,0x76,0x0,0x0,0x0,0x76,0x0,0x0,0x0,0x76,0x0,0x0,0x0,0x76,0x0,0x0,0x0,0x76,0x0,0x0,0x0,0x76,0x0,0x0,0x0,0x76,0x0,0x0,0x0,0x76,0x0,0x0,0x0,0x76,0x0,0x0,0x0,0x74,0x0,0x0,0x0,0xa4,0x0,0x0,0x0,0xfd,0x0,0x0,0x0,0xff,0x0,0x0,0x0,0xed,0x0,0x0,0x0,0x77,0x0,0x0,0x0,0x27,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x34,0x0,0x0,0x0,0xea,0x0,0x0,0x0,0xff,0x0,0x0,0x0,0xe1,0x0,0x0,0x0,0x48,0x0,0x0,0x0,0xc9,0x0,0x0,0x0,0xff,0x0,0x0,0x0,0xff,0x0,0x0,0x0,0xff,0x0,0x0,0x0,0xff,0x0,0x0,0x0,0xff,0x0,0x0,0x0,0xff,0x0,0x0,0x0,0xff,0x0,0x0,0x0,0xff,0x0,0x0,0x0,0xff,0x0,0x0,0x0,0xff,0x0,0x0,0x0,0xff,0x0,0x0,0x0,0xff,0x0,0x0,0x0,0xff,0x0,0x0,0x0,0xff,0x0,0x0,0x0,0xff,0x0,0x0,0x0,0xff,0x0,0x0,0x0,0xff,0x0,0x0,0x0,0xff,0x0,0x0,0x0,0xff,0x0,0x0,0x0,0xff,0x0,0x0,0x0,0xff,0x0,0x0,0x0,0xff,0x0,0x0,0x0,0xff,0x0,0x0,0x0,0xff,0x0,0x0,0x0,0xff,0x0,0x0,0x0,0xff,0x0,0x0,0x0,0xff,0x0,0x0,0x0,0xff,0x0,0x0,0x0,0xd3,0x0,0x0,0x0,0x47,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x34,0x0,0x0,0x0,0xea,0x0,0x0,0x0,0xff,0x0,0x0,0x0,0xe6,0x0,0x0,0x0,0xb1,0x0,0x0,0x0,0xff,0x0,0x0,0x0,0xff,0x0,0x0,0x0,0xff,0x0,0x0,0x0,0xff,0x0,0x0,0x0,0xff,0x0,0x0,0x0,0xff,0x0,0x0,0x0,0xff,0x0,0x0,0x0,0xff,0x0,0x0,0x0,0xff,0x0,0x0,0x0,0xff,0x0,0x0,0x0,0xff,0x0,0x0,0x0,0xff,0x0,0x0,0x0,0xff,0x0,0x0,0x0,0xff,0x0,0x0,0x0,0xff,0x0,0x0,0x0,0xff,0x0,0x0,0x0,0xff,0x0,0x0,0x0,0xff,0x0,0x0,0x0,0xff,0x0,0x0,0x0,0xff,0x0,0x0,0x0,0xff,0x0,0x0,0x0,0xff,0x0,0x0,0x0,0xff,0x0,0x0,0x0,0xff,0x0,0x0,0x0,0xff,0x0,0x0,0x0,0xff,0x0,0x0,0x0,0xff,0x0,0x0,0x0,0xff,0x0,0x0,0x0,0xff,0x0,0x0,0x0,0xff,0x0,0x0,0x0,0xbe,0x0,0x0,0x0,0xd,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x34,0x0,0x0,0x0,0xea,0x0,0x0,0x0,0xff,0x0,0x0,0x0,0xfa,0x0,0x0,0x0,0xf8,0x0,0x0,0x0,0xff,0x0,0x0,0x0,0xfe,0x0,0x0,0x0,0xd6,0x0,0x0,0x0,0xc1,0x0,0x0,0x0,0xc2,0x0,0x0,0x0,0xc2,0x0,0x0,0x0,0xc2,0x0,0x0,0x0,0xc2,0x0,0x0,0x0,0xc2,0x0,0x0,0x0,0xc2,0x0,0x0,0x0,0xc2,0x0,0x0,0x0,0xc2,0x0,0x0,0x0,0xc2,0x0,0x0,0x0,0xc2,0x0,0x0,0x0,0xc2,0x0,0x0,0x0,0xc2,0x0,0x0,0x0,0xc2,0x0,0x0,0x0,0xc2,0x0,0x0,0x0,0xc2,0x0,0x0,0x0,0xc2,0x0,0x0,0x0,0xc2,0x0,0x0,0x0,0xc2,0x0,0x0,0x0,0xc2,0x0,0x0,0x0,0xc2,0x0,0x0,0x0,0xc2,0x0,0x0,0x0,0xc2,0x0,0x0,0x0,0xc1,0x0,0x0,0x0,0xcd,0x0,0x0,0x0,0xfa,0x0,0x0,0x0,0xff,0x0,0x0,0x0,0xe4,0x0,0x0,0x0,0x27,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x34,0x0,0x0,0x0,0xea,0x0,0x0,0x0,0xff,0x0,0x0,0x0,0xff,0x0,0x0,0x0,0xff,0x0,0x0,0x0,0xff,0x0,0x0,0x0,0xf2,0x0,0x0,0x0,0x46,0x0,0x0,0x0,0x7,0x0,0x0,0x0,0xa,0x0,0x0,0x0,0xa,0x0,0x0,0x0,0xa,0x0,0x0,0x0,0xa,0x0,0x0,0x0,0xa,0x0,0x0,0x0,0xa,0x0,0x0,0x0,0xa,0x0,0x0,0x0,0xa,0x0,0x0,0x0,0xa,0x0,0x0,0x0,0xa,0x0,0x0,0x0,0xa,0x0,0x0,0x0,0xa,0x0,0x0,0x0,0xa,0x0,0x0,0x0,0xa,0x0,0x0,0x0,0xa,0x0,0x0,0x0,0xa,0x0,0x0,0x0,0xa,0x0,0x0,0x0,0xa,0x0,0x0,0x0,0xa,0x0,0x0,0x0,0xa,0x0,0x0,0x0,0xa,0x0,0x0,0x0,0xa,0x0,0x0,0x0,0x7,0x0,0x0,0x0,0x4d,0x0,0x0,0x0,0xf5,0x0,0x0,0x0,0xff,0x0,0x0,0x0,0xd9,0x0,0x0,0x0,0x1c,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x34,0x0,0x0,0x0,0xea,0x0,0x0,0x0,0xff,0x0,0x0,0x0,0xff,0x0,0x0,0x0,0xff,0x0,0x0,0x0,0xff,0x0,0x0,0x0,0xc7,0x0,0x0,0x0,0x13,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x87,0x0,0x0,0x0,0xff,0x0,0x0,0x0,0xff,0x0,0x0,0x0,0xb9,0x0,0x0,0x0,0x8,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x34,0x0,0x0,0x0,0xea,0x0,0x0,0x0,0xff,0x0,0x0,0x0,0xff,0x0,0x0,0x0,0xff,0x0,0x0,0x0,0xff,0x0,0x0,0x0,0x9d,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x8,0x0,0x0,0x0,0xb8,0x0,0x0,0x0,0xff,0x0,0x0,0x0,0xff,0x0,0x0,0x0,0x93,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x34,0x0,0x0,0x0,0xea,0x0,0x0,0x0,0xff,0x0,0x0,0x0,0xff,0x0,0x0,0x0,0xff,0x0,0x0,0x0,0xff,0x0,0x0,0x0,0x75,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x19,0x0,0x0,0x0,0xd8,0x0,0x0,0x0,0xff,0x0,0x0,0x0,0xff,0x0,0x0,0x0,0x6a,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x34,0x0,0x0,0x0,0xea,0x0,0x0,0x0,0xff,0x0,0x0,0x0,0xff,0x0,0x0,0x0,0xff,0x0,0x0,0x0,0xf9,0x0,0x0,0x0,0x4d,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x34,0x0,0x0,0x0,0xef,0x0,0x0,0x0,0xff,0x0,0x0,0x0,0xf2,0x0,0x0,0x0,0x41,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x34,0x0,0x0,0x0,0xea,0x0,0x0,0x0,0xff,0x0,0x0,0x0,0xff,0x0,0x0,0x0,0xff,0x0,0x0,0x0,0xe8,0x0,0x0,0x0,0x2c,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x58,0x0,0x0,0x0,0xfc,0x0,0x0,0x0,0xff,0x0,0x0,0x0,0xca,0x0,0x0,0x0,0x15,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x34,0x0,0x0,0x0,0xea,0x0,0x0,0x0,0xff,0x0,0x0,0x0,0xff,0x0,0x0,0x0,0xff,0x0,0x0,0x0,0xba,0x0,0x0,0x0,0xe,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x80,0x0,0x0,0x0,0xff,0x0,0x0,0x0,0xff,0x0,0x0,0x0,0x9f,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x34,0x0,0x0,0x0,0xea,0x0,0x0,0x0,0xff,0x0,0x0,0x0,0xff,0x0,0x0,0x0,0xff,0x0,0x0,0x0,0x83,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xd,0x0,0x0,0x0,0xb8,0x0,0x0,0x0,0xff,0x0,0x0,0x0,0xff,0x0,0x0,0x0,0x77,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x34,0x0,0x0,0x0,0xea,0x0,0x0,0x0,0xff,0x0,0x0,0x0,0xff,0x0,0x0,0x0,0xfd,0x0,0x0,0x0,0x59,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x2a,0x0,0x0,0x0,0xe7,0x0,0x0,0x0,0xff,0x0,0x0,0x0,0xfa,0x0,0x0,0x0,0x4f,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x34,0x0,0x0,0x0,0xea,0x0,0x0,0x0,0xff,0x0,0x0,0x0,0xff,0x0,0x0,0x0,0xf0,0x0,0x0,0x0,0x36,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x4c,0x0,0x0,0x0,0xf9,0x0,0x0,0x0,0xff,0x0,0x0,0x0,0xea,0x0,0x0,0x0,0x2d,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x34,0x0,0x0,0x0,0xea,0x0,0x0,0x0,0xff,0x0,0x0,0x0,0xff,0x0,0x0,0x0,0xd9,0x0,0x0,0x0,0x1a,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x72,0x0,0x0,0x0,0xff,0x0,0x0,0x0,0xff,0x0,0x0,0x0,0xbe,0x0,0x0,0x0,0xf,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x34,0x0,0x0,0x0,0xea,0x0,0x0,0x0,0xff,0x0,0x0,0x0,0xff,0x0,0x0,0x0,0xbb,0x0,0x0,0x0,0x9,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x9a,0x0,0x0,0x0,0xff,0x0,0x0,0x0,0xff,0x0,0x0,0x0,0x86,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x34,0x0,0x0,0x0,0xea,0x0,0x0,0x0,0xff,0x0,0x0,0x0,0xff,0x0,0x0,0x0,0x8d,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x10,0x0,0x0,0x0,0xc3,0x0,0x0,0x0,0xff,0x0,0x0,0x0,0xfd,0x0,0x0,0x0,0x5d,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x34,0x0,0x0,0x0,0xea,0x0,0x0,0x0,0xff,0x0,0x0,0x0,0xf6,0x0,0x0,0x0,0x4c,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0x4,0x0,0x0,0x0,0x4,0x0,0x0,0x0,0x4,0x0,0x0,0x0,0x4,0x0,0x0,0x0,0x4,0x0,0x0,0x0,0x4,0x0,0x0,0x0,0x4,0x0,0x0,0x0,0x4,0x0,0x0,0x0,0x4,0x0,0x0,0x0,0x4,0x0,0x0,0x0,0x4,0x0,0x0,0x0,0x4,0x0,0x0,0x0,0x4,0x0,0x0,0x0,0x4,0x0,0x0,0x0,0x4,0x0,0x0,0x0,0x4,0x0,0x0,0x0,0x4,0x0,0x0,0x0,0x4,0x0,0x0,0x0,0x4,0x0,0x0,0x0,0x4,0x0,0x0,0x0,0x4,0x0,0x0,0x0,0x4,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0x3e,0x0,0x0,0x0,0xef,0x0,0x0,0x0,0xff,0x0,0x0,0x0,0xf1,0x0,0x0,0x0,0x38,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x2b,0x0,0x0,0x0,0xe7,0x0,0x0,0x0,0xff,0x0,0x0,0x0,0xf9,0x0,0x0,0x0,0xbb,0x0,0x0,0x0,0xab,0x0,0x0,0x0,0xac,0x0,0x0,0x0,0xac,0x0,0x0,0x0,0xac,0x0,0x0,0x0,0xac,0x0,0x0,0x0,0xac,0x0,0x0,0x0,0xac,0x0,0x0,0x0,0xac,0x0,0x0,0x0,0xac,0x0,0x0,0x0,0xac,0x0,0x0,0x0,0xac,0x0,0x0,0x0,0xac,0x0,0x0,0x0,0xac,0x0,0x0,0x0,0xac,0x0,0x0,0x0,0xac,0x0,0x0,0x0,0xac,0x0,0x0,0x0,0xac,0x0,0x0,0x0,0xac,0x0,0x0,0x0,0xac,0x0,0x0,0x0,0xac,0x0,0x0,0x0,0xac,0x0,0x0,0x0,0xac,0x0,0x0,0x0,0xac,0x0,0x0,0x0,0xab,0x0,0x0,0x0,0xc6,0x0,0x0,0x0,0xfe,0x0,0x0,0x0,0xff,0x0,0x0,0x0,0xdd,0x0,0x0,0x0,0x1d,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xf,0x0,0x0,0x0,0xc4,0x0,0x0,0x0,0xff,0x0,0x0,0x0,0xff,0x0,0x0,0x0,0xff,0x0,0x0,0x0,0xff,0x0,0x0,0x0,0xff,0x0,0x0,0x0,0xff,0x0,0x0,0x0,0xff,0x0,0x0,0x0,0xff,0x0,0x0,0x0,0xff,0x0,0x0,0x0,0xff,0x0,0x0,0x0,0xff,0x0,0x0,0x0,0xff,0x0,0x0,0x0,0xff,0x0,0x0,0x0,0xff,0x0,0x0,0x0,0xff,0x0,0x0,0x0,0xff,0x0,0x0,0x0,0xff,0x0,0x0,0x0,0xff,0x0,0x0,0x0,0xff,0x0,0x0,0x0,0xff,0x0,0x0,0x0,0xff,0x0,0x0,0x0,0xff,0x0,0x0,0x0,0xff,0x0,0x0,0x0,0xff,0x0,0x0,0x0,0xff,0x0,0x0,0x0,0xff,0x0,0x0,0x0,0xff,0x0,0x0,0x0,0xff,0x0,0x0,0x0,0xff,0x0,0x0,0x0,0xff,0x0,0x0,0x0,0xa3,0x0,0x0,0x0,0x7,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x55,0x0,0x0,0x0,0xde,0x0,0x0,0x0,0xff,0x0,0x0,0x0,0xff,0x0,0x0,0x0,0xff,0x0,0x0,0x0,0xff,0x0,0x0,0x0,0xff,0x0,0x0,0x0,0xff,0x0,0x0,0x0,0xff,0x0,0x0,0x0,0xff,0x0,0x0,0x0,0xff,0x0,0x0,0x0,0xff,0x0,0x0,0x0,0xff,0x0,0x0,0x0,0xff,0x0,0x0,0x0,0xff,0x0,0x0,0x0,0xff,0x0,0x0,0x0,0xff,0x0,0x0,0x0,0xff,0x0,0x0,0x0,0xff,0x0,0x0,0x0,0xff,0x0,0x0,0x0,0xff,0x0,0x0,0x0,0xff,0x0,0x0,0x0,0xff,0x0,0x0,0x0,0xff,0x0,0x0,0x0,0xff,0x0,0x0,0x0,0xff,0x0,0x0,0x0,0xff,0x0,0x0,0x0,0xff,0x0,0x0,0x0,0xff,0x0,0x0,0x0,0xff,0x0,0x0,0x0,0xcc,0x0,0x0,0x0,0x2d,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x32,0x0,0x0,0x0,0x7f,0x0,0x0,0x0,0x8f,0x0,0x0,0x0,0x8f,0x0,0x0,0x0,0x8f,0x0,0x0,0x0,0x8f,0x0,0x0,0x0,0x8f,0x0,0x0,0x0,0x8f,0x0,0x0,0x0,0x8f,0x0,0x0,0x0,0x8f,0x0,0x0,0x0,0x8f,0x0,0x0,0x0,0x8f,0x0,0x0,0x0,0x8f,0x0,0x0,0x0,0x8f,0x0,0x0,0x0,0x8f,0x0,0x0,0x0,0x8f,0x0,0x0,0x0,0x8f,0x0,0x0,0x0,0x8f,0x0,0x0,0x0,0x8f,0x0,0x0,0x0,0x8f,0x0,0x0,0x0,0x8f,0x0,0x0,0x0,0x8f,0x0,0x0,0x0,0x8f,0x0,0x0,0x0,0x8f,0x0,0x0,0x0,0x8f,0x0,0x0,0x0,0x8f,0x0,0x0,0x0,0x8f,0x0,0x0,0x0,0x8f,0x0,0x0,0x0,0x75,0x0,0x0,0x0,0x23,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0
	};
	PX_memset(&explorer, 0, sizeof(explorer));
	if (Width < 256)
	{
		Width = 256;
	}
	if (Height < 128)
	{
		Height = 128;
	}
	explorer.backgroundcolor = PX_OBJECT_UI_DEFAULT_BACKGROUNDCOLOR;
	explorer.cursorcolor = PX_OBJECT_UI_DEFAULT_CURSORCOLOR;
	explorer.fontcolor = PX_OBJECT_UI_DEFAULT_FONTCOLOR;
	explorer.bordercolor = PX_OBJECT_UI_DEFAULT_BORDERCOLOR;

	explorer.func_getpathfilecount = _func_gpfec;
	explorer.func_getpathfilename = _func_gpfcn;
	explorer.func_getpathfoldercount = _func_gpfdc;
	explorer.func_getpathfoldername = _func_gpfdn;
	explorer.returnType = PX_OBJECT_EXPLORER_RETURN_CANCEL;
	explorer.MaxSelectedCount = 1;
	explorer.fontmodule = fm;

	if (!PX_ShapeCreateFromMemory(mp, PX_Object_Explorer_fileLogoData, sizeof(PX_Object_Explorer_fileLogoData), &explorer.file))return PX_NULL;
	if (!PX_ShapeCreateFromMemory(mp, PX_Object_Explorer_folderLogoData, sizeof(PX_Object_Explorer_folderLogoData), &explorer.folder))return PX_NULL;

	PX_ASSERTIF(pObject == PX_NULL);
	PX_ASSERTIF(attachIndex < 0 || attachIndex >= PX_COUNTOF(pObject->pObjectDesc));
	PX_ASSERTIF(pObject->pObjectDesc[attachIndex] != PX_NULL);
	pExp = (PX_Object_Explorer*)PX_ObjectCreateDesc(pObject, attachIndex, PX_OBJECT_TYPE_EXPLORER, 0, PX_Object_ExplorerRender, PX_Object_ExplorerFree, &explorer, sizeof(PX_Object_Explorer));
	PX_ASSERTIF(pExp == PX_NULL);

	do
	{
		PX_Object_Explorer* pExp = PX_Object_GetExplorer(pObject);
		pExp->btn_Back = PX_Object_PushButtonCreate(mp, pObject, 0, 0, 1, 1, "<-Back", pExp->fontmodule);
		pExp->btn_go = PX_Object_PushButtonCreate(mp, pObject, 0, 0, 1, 1, "Go->", pExp->fontmodule);
		pExp->btn_Ok = PX_Object_PushButtonCreate(mp, pObject, 0, 0, 1, 1, "Ok", pExp->fontmodule);
		pExp->btn_Cancel = PX_Object_PushButtonCreate(mp, pObject, 0, 0, 1, 1, "Cancel", pExp->fontmodule);
		pExp->edit_Path = PX_Object_EditCreate(mp, pObject, 0, 0, 1, 1, pExp->fontmodule);
		pExp->edit_FileName = PX_Object_EditCreate(mp, pObject, 0, 0, 1, 1, pExp->fontmodule);
		PX_Object_EditSetText(pExp->edit_Path, path);
		pExp->SliderBar = PX_Object_SliderBarCreate(mp, pObject, 0, 0, 24, 24, PX_OBJECT_SLIDERBAR_TYPE_VERTICAL, PX_OBJECT_SLIDERBAR_STYLE_BOX);
		pExp->btn_Ok->Visible = PX_FALSE;
		PX_ObjectRegisterEvent(pExp->btn_Back, PX_OBJECT_EVENT_EXECUTE, PX_Object_ExplorerOnButtonBack, pObject);
		PX_ObjectRegisterEvent(pExp->btn_go, PX_OBJECT_EVENT_EXECUTE, PX_Object_ExplorerOnButtonGo, pObject);
		PX_ObjectRegisterEvent(pExp->btn_Ok, PX_OBJECT_EVENT_EXECUTE, PX_Object_ExplorerOnButtonOk, pObject);
		PX_ObjectRegisterEvent(pExp->btn_Cancel, PX_OBJECT_EVENT_EXECUTE, PX_Object_ExplorerOnButtonCancel, pObject);
		PX_ObjectRegisterEvent(pExp->edit_FileName, PX_OBJECT_EVENT_VALUECHANGED, PX_Object_ExplorerOnEditChanged, pObject);

		PX_ObjectRegisterEvent(pObject, PX_OBJECT_EVENT_CURSORMOVE, PX_Object_ExplorerOnCursorMove, pObject);
		PX_ObjectRegisterEvent(pObject, PX_OBJECT_EVENT_CURSORDOWN, PX_Object_ExplorerOnCursorDown, pObject);
		PX_ObjectRegisterEvent(pObject, PX_OBJECT_EVENT_CURSORWHEEL, PX_Object_ExplorerOnCursorWheel, pObject);

	} while (0);

	PX_Object_ExplorerRefresh(pObject);
	pObject->Visible = PX_FALSE;
	pObject->OnLostFocusReleaseEvent = PX_TRUE;
	return pObject;
}

PX_Object * PX_Object_ExplorerCreate(px_memorypool *mp, PX_Object *Parent,px_int x,px_int y,px_int Width,px_int Height,PX_FontModule *fm, PX_ExplorerGetPathFolderCount _func_gpfdc,\
	PX_ExplorerGetPathFileCount _func_gpfec, PX_ExplorerGetPathFolderName _func_gpfdn, PX_ExplorerGetPathFileName _func_gpfcn,const px_char path[])
{
	PX_Object *pObject;
	pObject=PX_ObjectCreate(mp,Parent,(px_float)x,(px_float)y,0,(px_float)Width,(px_float)Height,0);
	if (!pObject)
	{
		return PX_NULL;
	}
	if (!PX_Object_ExplorerAttachObject(pObject, 0,x,y,Width,Height, fm, _func_gpfdc, _func_gpfec, _func_gpfdn, _func_gpfcn, path))
	{
		PX_ObjectDelete(pObject);
		return PX_NULL;
	}
	return pObject;
}

px_void PX_Object_ExplorerSetBorderColor(PX_Object *pObject,px_color clr)
{
	PX_Object_Explorer *pExp=PX_Object_GetExplorer(pObject);
	if (pExp)
	{
		pExp->bordercolor=clr;
	}
}

px_void PX_Object_ExplorerSetPushColor(PX_Object *pObject,px_color clr)
{
	PX_Object_Explorer *pExp=PX_Object_GetExplorer(pObject);
	if (pExp)
	{
		pExp->pushcolor=clr;
	}
}

px_void PX_Object_ExplorerSetCursorColor(PX_Object *pObject,px_color clr)
{
	PX_Object_Explorer *pExp=PX_Object_GetExplorer(pObject);
	if (pExp)
	{
		pExp->cursorcolor=clr;
	}
}

px_void PX_Object_ExplorerSetTextColor(PX_Object *pObject,px_color clr)
{
	PX_Object_Explorer *pExp=PX_Object_GetExplorer(pObject);
	if (pExp)
	{
		pExp->fontcolor=clr;
	}
}

px_void PX_Object_ExplorerRefresh(PX_Object *pObject)
{
	PX_Object_Explorer *pExp=PX_Object_GetExplorer(pObject);
	px_char FileNames[PX_EXPLORER_MAX_ITEMS][260];

	if (pExp)
	{
		px_int i;
		px_int count;
		px_char *path=PX_Object_EditGetText(pExp->edit_Path);

		if (!pExp->func_getpathfilecount||!pExp->func_getpathfilename||!pExp->func_getpathfoldercount||!pExp->func_getpathfoldername)
		{
			return;
		}


		pExp->ItemCount=0;

		//folder
		count=pExp->func_getpathfoldercount(path,pExp->filter);
		if (count>PX_EXPLORER_MAX_ITEMS)
		{
			count=PX_EXPLORER_MAX_ITEMS;
		}
		pExp->func_getpathfoldername(path,count,FileNames,pExp->filter);
		for (i=0;i<count;i++)
		{
			pExp->Items[i].bcursor=PX_FALSE;
			pExp->Items[i].bFolder=PX_TRUE;
			pExp->Items[i].bselect=PX_FALSE;
			PX_strcpy(pExp->Items[i].name,FileNames[i],sizeof(pExp->Items[i].name));
		}
		pExp->ItemCount+=count;

		count=pExp->func_getpathfilecount(path,pExp->filter);
		if (count>PX_EXPLORER_MAX_ITEMS-pExp->ItemCount)
		{
			count=PX_EXPLORER_MAX_ITEMS-pExp->ItemCount;
		}
		pExp->func_getpathfilename(path,count,FileNames,pExp->filter);
		for (i=0;i<count;i++)
		{
			if (pExp->ItemCount + i < PX_COUNTOF(pExp->Items))
			{
				pExp->Items[pExp->ItemCount + i].bcursor = PX_FALSE;
				pExp->Items[pExp->ItemCount + i].bFolder = PX_FALSE;
				pExp->Items[pExp->ItemCount + i].bselect = PX_FALSE;
				PX_strcpy(pExp->Items[pExp->ItemCount + i].name, FileNames[i], sizeof(pExp->Items[0].name));
			}
		}
		pExp->ItemCount+=count;
		PX_Object_SliderBarSetValue(pExp->SliderBar,0);

		if (pExp->savemode)
		{
			PX_Object_EditSetText(pExp->edit_FileName, "");
		}
	}
}
px_int PX_Object_ExplorerGetSelectedCount(PX_Object *pObject)
{
	PX_Object_Explorer *pExp=PX_Object_GetExplorer(pObject);
	px_int selectCount=0;
	px_int i;
	for (i=0;i<pExp->ItemCount;i++)
	{
		if (pExp->Items[i].bselect)
		{
			selectCount++;
		}
	}
	return selectCount;
}
px_void PX_Object_ExplorerGetPath(PX_Object *pObject,px_char path[PX_EXPLORER_MAX_PATH_LEN],px_int index)
{
	PX_Object_Explorer *pExp=PX_Object_GetExplorer(pObject);
	px_int selectCount=0,selectIndex=0;
	px_int i;
	for (i=0;i<pExp->ItemCount;i++)
	{
		if (pExp->Items[i].bselect)
		{
			selectCount++;
		}
	}
	if (pExp->savemode)
	{
		PX_strcpy(path, PX_Object_EditGetText(pExp->edit_Path), PX_EXPLORER_MAX_PATH_LEN);
		if(path[0]&&path[PX_strlen(path)-1]!='\\'&&path[PX_strlen(path) - 1] != '/')
			PX_strcat(path, "/");
		PX_strcat(path, PX_Object_EditGetText(pExp->edit_FileName));
	}
	else
	{
		if (index < selectCount)
		{
			for (i = 0; i < pExp->ItemCount; i++)
			{
				if (pExp->Items[i].bselect)
				{
					if (selectIndex == index)
					{
						PX_strcpy(path, PX_Object_EditGetText(pExp->edit_Path), PX_EXPLORER_MAX_PATH_LEN);
						if (path[PX_strlen(path) - 1] != '/' && path[PX_strlen(path) - 1] != '\\' && path[0])
						{
							PX_strcat(path, "/");
						}
						PX_strcat(path, pExp->Items[i].name);
					}
					selectIndex++;
				}
			}
		}
		else
		{
			path[0] = '\0';
		}
	}
}

px_void PX_Object_ExplorerOpen(PX_Object *pObject)
{
	PX_Object_Explorer* pExp=PX_Object_GetExplorer(pObject);

	PX_ObjectSetFocus(pObject);
	PX_Object_ExplorerRefresh(pObject);
	pObject->Visible=PX_TRUE;
	pExp->savemode = PX_FALSE;
}

px_void PX_Object_ExplorerSave(PX_Object* pObject)
{
	PX_Object_Explorer* pExp = PX_Object_GetExplorer(pObject);

	PX_ObjectSetFocus(pObject);
	PX_Object_ExplorerRefresh(pObject);
	pObject->Visible = PX_TRUE;
	pExp->savemode = PX_TRUE;
}

px_void PX_Object_ExplorerClose(PX_Object *pObject)
{
	PX_ObjectClearFocus(pObject);
	pObject->Visible=PX_FALSE;
}

px_void PX_Object_ExplorerSetFilter(PX_Object *pObject,const px_char *filter)
{
	PX_Object_Explorer *pExp=PX_Object_GetExplorer(pObject);
	if (pExp)
	{
		PX_memset(pExp->filter,0,sizeof(pExp->filter));
		PX_strcpy(pExp->filter,filter,sizeof(pExp->filter));
	}

}
px_void PX_Object_ExplorerSetMaxSelectCount(PX_Object *pObject,px_int selectCount)
{
	PX_Object_Explorer *pExp=PX_Object_GetExplorer(pObject);
	if (pExp)
	{
		pExp->MaxSelectedCount=selectCount;
	}
}
